A simple menu command

The following menu command is associated with two menu items: Undo and Redo. It checks the arguments attribute of the menuitem tag and performs a dw.undo() or a dw.redo() operation depending on the value of the first (and only) argument.

<HTML><HEAD><!-- Copyright 1999 Macromedia, Inc. All rights reserved. --><TITLE>Edit Clipboard</TITLE><SCRIPT LANGUAGE="javascript">function receiveArguments()
{
  if (arguments.length != 1) return;

  var whatToDo = arguments[0];
  if (whatToDo == "undo")
  {
    dw.undo();
  }
  else if (whatToDo == "redo")
  {
    dw.redo();
  }
}

function canAcceptCommand()
{
  var selarray;
  if (arguments.length != 1) return false;
  var bResult = false;

  var whatToDo = arguments[0];
  if (whatToDo == "undo")
  {
    bResult = dw.canUndo();
  }
  else if (whatToDo == "redo")
  {
    bResult = dw.canRedo();
  }
  return bResult;
}

function setMenuText()
{
  if (arguments.length != 1) return "";

  var whatToDo = arguments[0];
  if (whatToDo == "undo")
    return dw.getUndoText();
  else if (whatToDo == "redo")
    return dw.getRedoText();
  else return "";
}

</SCRIPT></HEAD><BODY></BODY></HTML>

In this command, the receiveArguments() function both processes the arguments and executes the command, but this need not be the case. More complex menu commands might call different functions to execute the command. For example, the following code checks whether the first argument is "foo"; if it is, it calls the doOperationX() function and passes it the second argument. If the first argument is "bar", it calls the doOperationY() function and passes it the second argument. doOperationX() or doOperationY() is responsible for executing the command.

function receiveArguments(){
  if (arguments.length != 2) return;

  var whatToDo = arguments[0];

  if (whatToDo == "foo"){
    doOperationX(arguments[1]);
  }else if (whatToDo == "bar"){
    doOperationX(arguments[1]);
  }
}